home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / clang / jcool01.zip / README < prev    next >
Internet Message Format  |  1992-12-02  |  7KB

  1. Date: December 2, 1992
  2. From: Jamshid Afshar (jamshid@ccwf.cc.utexas.edu)
  3. Subject: JCOOL 0.1 -- A free C++ class library using templates
  4.  
  5.  
  6. INTRODUCTION:
  7.  
  8. This is the README file for JCOOL 0.1.  This file and the JCOOL
  9. library are available by anonymous ftp at cs.utexas.edu in the
  10. directory pub/COOL as the files 'jcool01.txt' and 'jcool01.zip'.
  11. JCOOL is a modified version of GECOOL 2.1 (also available at
  12. cs.utexas.edu in pub/COOL/GECOOL2.1.tar.Z). GECOOL 2.1 is a reworking
  13. and enhancement of Texas Instrument's "C++ Object Oriented Library"
  14. (at csc.ti.com in ~ftp/pub/COOL.tar.Z) by some programmers at General
  15. Electric.  See the file 'coolhist' for more information about the
  16. history of COOL and its spinoffs.
  17.  
  18. JCOOL's main difference from COOL and GECOOL is that it uses real C++
  19. templates instead of a similar syntax that is preprocessed by a
  20. special 'cpp' distributed with COOL and GECOOL.  Of course, this
  21. means JCOOL can only be compiled with a compiler implementing
  22. templates.  I named the library JCOOL so as not to confuse it with
  23. other current or future versions and spinoffs of COOL.  Hopefully any
  24. further work will be merged to create a freely available and usable,
  25. portable general C++ class library.  JCOOL includes the classes
  26. AVL_Tree, Association, Bignum, Binary_Tree, Bit_Set, Complex,
  27. Date_Time, Envelope, Gen_String, Handle, Hash_Table, Iterator, List,
  28. M_Vector, Matrix, N_Tree, Pair, Quaternion, Queue, Random, Range,
  29. Rational, Regexp, Set, Shared, Stack, String, Timer, Value, Vector.
  30. Most of these are class templates.  So far JCOOL has only been
  31. compiled under Borland C++ 3.1.
  32.  
  33.  
  34. PURPOSE:
  35.  
  36. C++ is a powerful tool but its major benefits cannot be achieved, nor
  37. can a new user be productive, without a good data structures
  38. library.  While I hope JCOOL eventually leads to something any C++
  39. user can confidently start with or incorporate into their existing
  40. code, this version of JCOOL is 0.1 to reinforce the fact that it is
  41. far from being fully tested or stable.  Some of the tests and
  42. examples fail either because of bugs in the code or the compiler.
  43. This library is provided without warranties of any kind.
  44.  
  45. My main goal in releasing it now is to improve the overall quality of
  46. C++ compilers, especially with respect to templates.  I found (and
  47. reported) numerous BC++ bugs in the process of building JCOOL. Please
  48. try to compile it on any C++ compiler claiming to support templates
  49. and (loudly) report the bugs that will inevitably pop up.  While I do
  50. have a long "todo" list of bug fixes and enhancements, and I do want
  51. to be kept abreast of any work, I will probably not have time to do
  52. much work on JCOOL in the near future. I am also somewhat worn out
  53. after fighting BC++ 3.1 over the past several months (though I'm sure
  54. Borland loves me :-).  I will be eager to enhance JCOOL once a new,
  55. more bug-free version of BC++ is released.  Please don't let this
  56. disclaimer keep you from sending comments or suggestions.  I'm always
  57. interested in bug reports, fixes, or suggestions on improving this
  58. package.  Please also consider letting others know about bugs or
  59. ports by posting to comp.lang.c++.
  60.  
  61.  
  62. DIRECTIONS:
  63.  
  64. Get JCOOL01.ZIP from cs.utexas.edu in pub/COOL.  It will unzip into:
  65.    cool/
  66.       tests/ - test programs, makefile for tests
  67.       examples/ - example programs, makefile for examples
  68.       readme - *this file
  69.       todo - bugs, plans
  70.       changes - changes, including GECOOL changes from COOL
  71.       makefile - Borland C++ 3.1 makefile to create cool.lib
  72.       coolhist - a COOL history report courtesy of Mary J. Fontana
  73.       renlong.sh - renames all files to their original UNIX names
  74.       renshort.sh - renames all files to DOS (8.3) names
  75.       *.h
  76.       *.c 
  77.  
  78. The makefile assumes you have BC++ 3.1 installed in c:\borlandc.  The
  79. large memory model is used.  Please read 'todo' and 'changes' before
  80. using JCOOL as they mention bugs I've encountered.  After modifing
  81. 'makefile' if necessary, do the following to install into your
  82. D:\FREELIBS directory and compile your program MYPROG.CPP.
  83.  
  84.    D:\FREELIBS>unzip -d jcool01  => creates COOL directory
  85.    D:\FREELIBS\COOL>make         => creates COOL.LIB
  86.    D:\FREELIBS\COOL\TESTS>make runall.out => creates test*.exe and runs them
  87.    D:\FREELIBS\COOL\EXAMPLES>make runall.out => creates ex*.exe and runs them
  88.    C:\MYPROG>bcc -Ic:\borlandc\include;d:\freelibs;d:\freelibs\cool
  89.                  -ml -vi- -w -w-sig -w-amp
  90.                  myprog.cpp d:\freelibs\cool\cool.lib  => creates myprog.exe
  91.  
  92. See the TESTS and EXAMPLES directories for sample code and see the
  93. header files themselves for class documentation.  You should include
  94. JCOOL headers by specifying the 'cool' path (eg, #include
  95. <cool/Binary_Tree.h>). Doing so allows you to use JCOOL with other
  96. libraries containing the same file names.  Use the full,
  97. case-sensitive file name so that your code is portable to less
  98. restrictive file systems.  You should #include the .C file of
  99. template classes in one of your modules (see the BC++ docs for more
  100. information about template instantiation).
  101.  
  102.  
  103. ACKNOWLEGEMENTS:
  104.  
  105. Thanks to the following for all their work on the design and
  106. implementation of COOL and GECOOL, and for making their work freely
  107. available.
  108.  
  109.       Mary J. Fontana (fontana@mtc.ti.com)
  110.       Van-Duc Nguyen (nguyen@crd.ge.com)
  111.       LGO?
  112.       DLS?
  113.       MBN?
  114.  
  115. A general thanks to the USENET community, especially comp.lang.c/c++,
  116. for being a wealth of information and ideas.
  117.  
  118. Finally, a special thanks to my s.o. Walter for putting up with my
  119. all-nighters at the office working on this and other C++ projects.
  120.  
  121.  
  122. SHAMELESS PLUG/PLEA:
  123.  
  124. Btw, if you are in the Austin area and looking for an expert C++
  125. programmer with 3 years work experience under DOS/MS-Windows and the
  126. ability to quickly learn other environments, please contact me for a
  127. resume.
  128.  
  129.  
  130. DISCLAIMERS:
  131.  
  132. //
  133. // Copyright (C) 1991 Texas Instruments Incorporated.
  134. //
  135. // Permission is granted to any individual or institution to use, copy, modify,
  136. // and distribute this software, provided that this complete copyright and
  137. // permission notice is maintained, intact, in all copies and supporting
  138. // documentation.
  139. //
  140. // Texas Instruments Incorporated provides this software "as is" without
  141. // express or implied warranty.
  142. //
  143.  
  144.  
  145. CONTACT:
  146.  
  147. Jamshid Afshar
  148. Email: jamshid@ccwf.cc.utexas.edu or jamshid@emx.utexas.edu
  149. USMail: 401 E. 4th Street #403, Austin, TX 78701
  150. USPhone: (512) 474-7455
  151.  
  152.